<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------

namespace Admin\Controller;
use User\Api\UserApi;

/**
 * 后台用户控制器
 * @author 麦当苗儿 <zuojiazi@vip.qq.com>
 */
class UserController extends AdminController {

    /**
     * 用户管理首页
     * @author 麦当苗儿 <zuojiazi@vip.qq.com>
     */
    public function index(){
/*        $content = "fds 你好！根据你的信用评估，你在西西钱包最终审核额度为2000.00元，如信用良好提额会短信通知你,客服热线0771-5717965";
        $api = new \Common\Extend\Api\ApiClient();
        $api = $api->sms();
        $api->mobile       = '17776037759';
        $api->content      = $content;
        $trl = $api->Send('get')->data();
        print_r($trl);exit;*/
        $nickname       =   I('nickname');
        $map['status']  =   array('egt',0);
        if(is_numeric($nickname)){
            $map['uid|nickname']=   array(intval($nickname),array('like','%'.$nickname.'%'),'_multi'=>true);
        }else{
            $map['nickname']    =   array('like', '%'.(string)$nickname.'%');
        }

        $list   = $this->lists('Member', $map);
        int_to_string($list);
        $this->assign('_list', $list);
        $this->meta_title = '用户信息';
        $this->display();
    }



    function set_deny(){
        if(IS_POST){
            // print_r(I('post.mobile'));die;
            $one=D('Deny')->where(['mobile'=>I('post.mobile'),'status'=>1])->find();

            if(!empty($one)){
                print_r('用户已设置过白名单，可注册');die;
            }
            $trl=D('Deny')->add(['mobile'=>I('post.mobile'),'status'=>1]);
            echo $trl;die;
            if($rl>0){
                echo 1;die;
            }else{
                echo 0;die;
            }
        }
    }










    public function view(){
        $model = M('Member');
        $uid =  I('get.id');
        $info = $model->where("uid={$uid}")->find();
        $this->assign('info', $info);
        $this->meta_title = '用户详细';
        $this->display();
    }
    /**
     * 修改昵称初始化
     * @author huajie <banhuajie@163.com>
     */
    public function updateNickname(){
        $nickname = M('Member')->getFieldByUid(UID, 'nickname');
        $this->assign('nickname', $nickname);
        $this->meta_title = '修改昵称';
        $this->display();
    }

    /**
     * 修改昵称提交
     * @author huajie <banhuajie@163.com>
     */
    public function submitNickname(){
        //获取参数
        $nickname = I('post.nickname');
        $password = I('post.password');
        empty($nickname) && $this->error('请输入昵称');
        empty($password) && $this->error('请输入密码');

        //密码验证
        $User   =   new UserApi();
        $uid    =   $User->login(UID, $password, 4);
        ($uid == -2) && $this->error('密码不正确');

        $Member =   D('Member');
        $data   =   $Member->create(array('nickname'=>$nickname));
        if(!$data){
            $this->error($Member->getError());
        }

        $res = $Member->where(array('uid'=>$uid))->save($data);

        if($res){
            $user               =   session('user_auth');
            $user['username']   =   $data['nickname'];
            session('user_auth', $user);
            session('user_auth_sign', data_auth_sign($user));
            $this->success('修改昵称成功！');
        }else{
            $this->error('修改昵称失败！');
        }
    }

    /**
     * 修改密码初始化
     * @author huajie <banhuajie@163.com>
     */
    public function updatePassword(){
        $this->meta_title = '修改密码';
        $this->display();
    }

    /**
     * 修改密码提交
     * @author huajie <banhuajie@163.com>
     */
    public function submitPassword(){
        //获取参数
        $password   =   I('post.old');
        empty($password) && $this->error('请输入原密码');
        $data['password'] = I('post.password');
        empty($data['password']) && $this->error('请输入新密码');
        $repassword = I('post.repassword');
        empty($repassword) && $this->error('请输入确认密码');

        if($data['password'] !== $repassword){
            $this->error('您输入的新密码与确认密码不一致');
        }

        $Api    =   new UserApi();
        $res    =   $Api->updateInfo(UID, $password, $data);
        if($res['status']){
            $this->success('修改密码成功！');
        }else{
            $this->error($res['info']);
        }
    }

    /**
     * 用户行为列表
     * @author huajie <banhuajie@163.com>
     */
    public function action(){
        //获取列表数据
        $Action =   M('Action')->where(array('status'=>array('gt',-1)));
        $list   =   $this->lists($Action);
        int_to_string($list);
        // 记录当前列表页的cookie
        Cookie('__forward__',$_SERVER['REQUEST_URI']);

        $this->assign('_list', $list);
        $this->meta_title = '用户行为';
        $this->display();
    }

    /**
     * 新增行为
     * @author huajie <banhuajie@163.com>
     */
    public function addAction(){
        $this->meta_title = '新增行为';
        $this->assign('data',null);
        $this->display('editaction');
    }

    /**
     * 编辑行为
     * @author huajie <banhuajie@163.com>
     */
    public function editAction(){
        $id = I('get.id');
        empty($id) && $this->error('参数不能为空！');
        $data = M('Action')->field(true)->find($id);

        $this->assign('data',$data);
        $this->meta_title = '编辑行为';
        $this->display();
    }

    /**
     * 更新行为
     * @author huajie <banhuajie@163.com>
     */
    public function saveAction(){
        $res = D('Action')->update();
        if(!$res){
            $this->error(D('Action')->getError());
        }else{
            $this->success($res['id']?'更新成功！':'新增成功！', Cookie('__forward__'));
        }
    }

    /**
     * 会员状态修改
     * @author 朱亚杰 <zhuyajie@topthink.net>
     */
    public function changeStatus($method=null){
        $id = array_unique((array)I('id',0));
        if( in_array(C('USER_ADMINISTRATOR'), $id)){
            $this->error("不允许对超级管理员执行该操作!");
        }
        $id = is_array($id) ? implode(',',$id) : $id;
        if ( empty($id) ) {
            $this->error('请选择要操作的数据!');
        }
        $map['uid'] =   array('in',$id);
        switch ( strtolower($method) ){
            case 'forbiduser':
                $this->forbid('Member', $map );
                break;
            case 'resumeuser':
                $this->resume('Member', $map );
                break;
            case 'deleteuser':
                $this->delete('Member', $map );
                break;
            default:
                $this->error('参数非法');
        }
    }


    public function update(){


        if(IS_POST){
            $uid=I('post.uid');
            $data=array(
                'marital_status'=>$_POST['member']['marital_status'],
                'reside_province'=>$_POST['member']['reside_province'],
                'reside_area'=>$_POST['member']['reside_area'],
                'reside_duration'=>$_POST['member']['reside_duration'],
                'career_type'=>$_POST['member']['career_type'],
                'relati_onship'=>$_POST['member']['relati_onship'],
                'social_relations'=>$_POST['member']['social_relations'],
                'reside_addr'=>$_POST['reside_addr'],
                'unitname'=>$_POST['unitname'],
                'unit_addr'=>$_POST['unit_addr'],
                'unit_phone'=>$_POST['unit_phone'],
                'relati_name'=>$_POST['relati_name'],
                'relati_number'=>$_POST['relati_number'],
                'social_name'=>$_POST['social_name'],
                'social_number'=>$_POST['social_number'],
                );
            // print_r($data);die;

            $trl=D('Member')->where("uid=".$uid)->save($data);

            if($trl==1){
                print_r('资料修改成功！');
            }else{
                print_r('资料修改失败！');
            }
            die;
        }

        $model = M('Member');
        $uid =  I('get.uid');
        $info = $model->where("uid=".$uid)->find();
        
        $this->assign('info', $info);
        $this->meta_title = '用户详细';
        $this->display();


    }

    public function get_area(){
        $id=I('num');  
        $list=D('Area')->where("pid=".$id)->select();
        ob_clean();
        $this->AjaxReturn($list);
        echo json_encode($list);die;
        // print_r($list);die;
    }




    /*
     *
     */
    public function quota(){
        if(IS_POST){
            $uid     = I('uid');
            $quota   = I('quota');
            $info = M('Member')->where("uid={$uid}")->find();
            if(empty($info)){
                $this->error('用户不存在');
            }
            $list    = M('Member')->where("uid={$uid}")->save(['quota'=>$quota]);
            if($list){
                $data = [
                    //'name'      =>$info['realname'],
                    'title'     => '你好'.$info['realname'].'，你的账户提额成功！',
                    'id'        =>$info['mobile'],
                    'money'     =>$quota,
                    'money'     =>$quota,
                ];
                D('Notice')->weixin(2,$uid,$data);
                //短信提醒
                
                $url='http://sh2.ipyy.com/sms.aspx?action=send&userid=&account=jkwl362&password=ndp987&mobile='.$info['mobile'].'&content=【西西钱包】'.$info['realname'].'您好！您的额度已提升为'.$data['money'].'元，感谢您的使用,客服热线0771-5717965&sendTime=&extno=';
                $this->send_post($url);
                // $content = "{$data['name']} 你好！根据你的信用评估，你在西西钱包最终审核额度为{$data['money']}元，如信用良好提额会短信通知你,客服热线0771-5717965";
                // $api = new \Common\Extend\Api\ApiClient();
                // $api = $api->sms();
                // $api->mobile       = $info['mobile'];
                // $api->content      = $content;
                // $trl = $api->Send('get')->data();
                // $this->success('修改成功');
                $this->redirect('Public/login');
            }else{
                $this->error('修改失败');
            }
        }else{
            $id   = I('id');
            $info = M('Member')->where("uid={$id}")->find();
            $this->assign('info',$info);
            $this->meta_title = '提升额度';
            $this->display();
        }
    }


    // /**
    //  * 发送post请求
    //  * @param string $url 请求地址
    //  * @param array $post_data post键值对数据
    //  * @return string
    //  */
    function send_post($url) {
        $post_data = array(
          'username' => 'jkwl362',
          'password' => 'ndp987'
        );
     
      $postdata = http_build_query($post_data);
      $options = array(
        'http' => array(
          'method' => 'POST',
          'header' => 'Content-type:application/x-www-form-urlencoded',
          'content' => $postdata,
          'timeout' => 60 // 超时时间（单位:s）
        )
      );
      $context = stream_context_create($options);
      $result = file_get_contents($url, false, $context);
    } 

    public function add($username = '', $password = '', $repassword = '', $email = ''){
        if(IS_POST){
            /* 检测密码 */
            if($password != $repassword){
                $this->error('密码和重复密码不一致！');
            }

            /* 调用注册接口注册用户 */
            $User   =   new UserApi;
            $uid    =   $User->register($username, $password, $email);
            if(0 < $uid){ //注册成功
                $user = array('uid' => $uid, 'nickname' => $username, 'status' => 1);
                if(!M('Member')->add($user)){
                    $this->error('用户添加失败！');
                } else {
                    $this->success('用户添加成功！',U('index'));
                }
            } else { //注册失败，显示错误信息
                $this->error($this->showRegError($uid));
            }
        } else {
            $this->meta_title = '新增用户';
            $this->display();
        }
    }

    /**
     * 获取用户注册错误信息
     * @param  integer $code 错误编码
     * @return string        错误信息
     */
    private function showRegError($code = 0){
        switch ($code) {
            case -1:  $error = '用户名长度必须在16个字符以内！'; break;
            case -2:  $error = '用户名被禁止注册！'; break;
            case -3:  $error = '用户名被占用！'; break;
            case -4:  $error = '密码长度必须在6-30个字符之间！'; break;
            case -5:  $error = '邮箱格式不正确！'; break;
            case -6:  $error = '邮箱长度必须在1-32个字符之间！'; break;
            case -7:  $error = '邮箱被禁止注册！'; break;
            case -8:  $error = '邮箱被占用！'; break;
            case -9:  $error = '手机格式不正确！'; break;
            case -10: $error = '手机被禁止注册！'; break;
            case -11: $error = '手机号被占用！'; break;
            default:  $error = '未知错误';
        }
        return $error;
    }

}
